package top.ooyyh.service;

import top.ooyyh.dao.UserDao;
import top.ooyyh.model.User;
import top.ooyyh.util.PasswordUtil;

/**
 * 用户服务类
 */
public class UserService {
    private UserDao userDao = new UserDao();

    /**
     * 用户登录
     */
    public User login(String username, String password) {
        User user = userDao.findByUsername(username);
        if (user != null && PasswordUtil.verify(password, user.getPassword())) {
            return user;
        }
        return null;
    }

    /**
     * 用户注册
     */
    public boolean register(String username, String password) {
        if (username == null || username.trim().isEmpty()) {
            return false;
        }
        if (password == null || password.length() < 6) {
            return false;
        }
        if (userDao.existsByUsername(username)) {
            return false;
        }
        User user = new User(username, password);
        return userDao.create(user);
    }

    /**
     * 邮箱注册（预留接口，暂不实现）
     */
    public boolean registerByEmail(String email, String password) {
        // TODO: 实现邮箱注册功能
        // 1. 验证邮箱格式
        // 2. 发送验证码到邮箱
        // 3. 验证验证码
        // 4. 创建用户
        throw new UnsupportedOperationException("邮箱注册功能尚未实现");
    }

    /**
     * 验证邮箱格式（预留）
     */
    public boolean isValidEmail(String email) {
        // TODO: 实现邮箱格式验证
        if (email == null || email.trim().isEmpty()) {
            return false;
        }
        return email.contains("@") && email.contains(".");
    }

    /**
     * 发送验证码到邮箱（预留）
     */
    public boolean sendVerificationCode(String email) {
        // TODO: 实现发送验证码功能
        throw new UnsupportedOperationException("发送验证码功能尚未实现");
    }

    /**
     * 验证邮箱验证码（预留）
     */
    public boolean verifyEmailCode(String email, String code) {
        // TODO: 实现验证码验证功能
        throw new UnsupportedOperationException("验证码验证功能尚未实现");
    }
}

